package com.yupi.yupao.model.domain;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.models.auth.In;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户实体
 */
@TableName(value = "user")
@Data
public class User implements Serializable {
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private long id;

    /**
     * 用户昵称
     */
    private String username;

    /**
     * 账号
     */
    private String userAccount;

    /**
     * 用户头像
     */
    private String avatarUrl;

    /**
     * 性别
     */
    private Integer gender;

    /**
     * 密码
     */
    private String userPassword;

    /**
     * 电话
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 标签列表 json
     */
    private String tags;

    /**
     * 状态 0 - 正常
     */
    private Integer userStatus;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    @TableLogic
    private Integer isDelete;

    /**
     * 用户角色 0 - 普通用户 1 - 管理员
     */
    private Integer userRole;

    /**
     * 星球编号
     */
    private String planetCode;

    /**
     * 创建一个分数字段
     */
    @TableField(exist = false)
    private Long score;
    /**
     * 这是一个 private 修饰的 static final 长整型变量，用于实现 Java 的序列化机制。
     * serialVersionUID 是一个序列化版本号，它是 Java 序列化的一部分，
     * 主要用于在对象序列化和反序列化时验证类的兼容性。当对象被序列化（例如将对象写入文件或通过网络传输）并随后进行反序列化时，Java 会使用 serialVersionUID 来确保序列化和反序列化的对象是兼容的。
     */
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
